package org.linlinjava.litemall.db.dao;

import org.apache.ibatis.annotations.Param;
import org.linlinjava.litemall.db.domain.*;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface StatMapper {
    List<Map> statUser();

    List<Map> statOrder();

    List<Map> statGoods();

    List<Map> statIntegral();

    int queryCount(
        @Param("start") Date start, @Param("end") Date end,
        @Param("type") Byte type, @Param("nickname") String nickname,
        @Param("name") String name, @Param("payStart") Date payStart,
        @Param("payEnd") Date payEnd, @Param("payType") Integer payType,
        @Param("mechaismId") Integer mechanismId, @Param("userId") Integer userId);

    List<LitemallWalletRecord> queryInstitutionalReportMapper(
        @Param("start") Date start, @Param("end") Date end,
        @Param("type") Byte type, @Param("nickname") String nickname,
        @Param("name") String name, @Param("payStart") Date payStart,
        @Param("payEnd") Date payEnd);

    List<LitemallWalletRecordVo> queryInstitutionalReportVoMapper(
            @Param("start") Date start, @Param("end") Date end,
            @Param("type") Byte type, @Param("nickname") String nickname,
            @Param("name") String name, @Param("payStart") Date payStart,
            @Param("payEnd") Date payEnd, @Param("payType") Integer payType,
            @Param("mechaismId") Integer mechanismId, @Param("userId") Integer userId);
}